using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("BnetAccount")]
	public class BnetAccount : MonoClass
	{
		public string m_fullName => method_4("m_fullName");

		public BnetBattleTag m_battleTag => method_3<BnetBattleTag>("m_battleTag");

		public long m_lastOnlineMicrosec => method_2<long>("m_lastOnlineMicrosec");

		public bool m_away => method_2<bool>("m_away");

		public long m_awayTimeMicrosec => method_2<long>("m_awayTimeMicrosec");

		public bool m_busy => method_2<bool>("m_busy");

		public string FullPresenceSummary => method_13("get_FullPresenceSummary");

		public BnetAccount(IntPtr address, string className)
			: base(address, className)
		{
		}

		public BnetAccount(IntPtr address)
			: this(address, "BnetAccount")
		{
		}

		public static bool op_Equality(BnetAccount a, BnetAccount b)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "BnetAccount", "op_Equality", new object[2] { a, b });
		}

		public static bool op_Inequality(BnetAccount a, BnetAccount b)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "BnetAccount", "op_Inequality", new object[2] { a, b });
		}

		public BnetAccount Clone()
		{
			return method_14<BnetAccount>("Clone", Array.Empty<object>());
		}

		public string GetFullName()
		{
			return method_13("GetFullName");
		}

		public void SetFullName(string fullName)
		{
			method_8("SetFullName", fullName);
		}

		public BnetBattleTag GetBattleTag()
		{
			return method_14<BnetBattleTag>("GetBattleTag", Array.Empty<object>());
		}

		public void SetBattleTag(BnetBattleTag battleTag)
		{
			method_8("SetBattleTag", battleTag);
		}

		public long GetLastOnlineMicrosec()
		{
			return method_11<long>("GetLastOnlineMicrosec", Array.Empty<object>());
		}

		public void SetLastOnlineMicrosec(long microsec)
		{
			method_8("SetLastOnlineMicrosec", microsec);
		}

		public bool IsAway()
		{
			return method_11<bool>("IsAway", Array.Empty<object>());
		}

		public void SetAway(bool away)
		{
			method_8("SetAway", away);
		}

		public long GetAwayTimeMicrosec()
		{
			return method_11<long>("GetAwayTimeMicrosec", Array.Empty<object>());
		}

		public void SetAwayTimeMicrosec(long awayTimeMicrosec)
		{
			method_8("SetAwayTimeMicrosec", awayTimeMicrosec);
		}

		public bool IsBusy()
		{
			return method_11<bool>("IsBusy", Array.Empty<object>());
		}

		public void SetBusy(bool busy)
		{
			method_8("SetBusy", busy);
		}

		public new bool Equals(object obj)
		{
			return method_10<bool>("Equals", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { obj });
		}

		public new int GetHashCode()
		{
			return method_11<int>("GetHashCode", Array.Empty<object>());
		}

		public new string ToString()
		{
			return method_13("ToString");
		}
	}
}
